1
Ruby I/Oの基盤となるストリーム
AI035Lesson 6
00:00

Rubyでは、入出力は単なるコマンドの集合ではなく、高度な ストリームベースのアーキテクチャです。このシステムの中心には IO クラスがあり、これは 双方向チャネル あなたのプログラムと外部との間をつなぐものとして機能します。ファイルやネットワークソケット、ユーザーのターミナルなどとやり取りする場合でも、Rubyはこれらを汎用的なストリームとして扱います。

1. 双方向ブリッジ

ある IO オブジェクトは統合された抽象化です。オペレーティングシステムが読み取りと書き込みのために別々の ファイルディスクリプタ (パイプのように)を認識している一方、Rubyはこれらを一つのオブジェクトにまとめます。これにより、両方向へのデータフローがスムーズに行えます。

RubyプログラムリソースIOオブジェクト

2. カーネルと標準フィルター

The Kernel モジュールは、 gets および printなどのメソッドを提供します。これらは本質的に フィルター であり、グローバル定数 STDIN および STDOUTに委任するものです。つまり、コードを変更せずに、OSレベルでファイルやネットワークストリームを処理できるようにリダイレクトできます。

$$\text{ストリーム} \rightarrow \text{バッファ} \rightarrow \text{Rubyインタプリタ}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>